package com.maochd.cloud.excel.handler;

import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

/**
 * 自定义单元格样式处理器
 */
public class CustomCellWriteHandler implements CellWriteHandler {

    @Override
    public void afterCellDispose(CellWriteHandlerContext cxt) {
        // 当前事件会在 数据设置到poi的cell里面才会回调
        // 判断不是头的情况 如果是fill的情况 这里会==null
        if (Boolean.TRUE.equals(cxt.getHead())) {
            return;
        }
        // 第一个单元格
        // 只要不是头 一定会有数据 当然fill的情况 可能要context.getCellDataList()
        // 这个需要看模板，因为一个单元格会有多个 WriteCellData
        WriteCellData<?> data = cxt.getFirstCellData();
        if (!CellDataTypeEnum.NUMBER.equals(data.getType())) {
            return;
        }
        // 数值单元格对齐方式：右对齐
        data.getWriteCellStyle().setHorizontalAlignment(HorizontalAlignment.RIGHT);
    }
}
